Source: TIGER data base, calculated for use with Census 2010
Land area measurements are originally recorded as whole square meters sq.m = sq.km* 1,000,000; sq.km = sq.mi* 2.58999; sq.m = sq.mi* 2,589,988).
portland_city_place <- places("41", cb = FALSE, year = 2019) %>% filter(NAME=="Portland")
# pdx_md<- metro_divisions(year=2019) no protland #CBSAFP=="38900", CSAFP=="440", NAME %in% grepl("Portland", NAME)
# ua <- urban_areas(year=2019)
# tri_cou <- c(Multnomah = "41051", Washington = "41067", Clackamas = "41005") #, Yamhill = "41071" , Clark = "53011"
tri_cou <- c('051','067','005')# "Multnomah", "Washington", "Clackamas"
pdx_counties <- counties("41", cb = FALSE, year = 2019) %>% filter(NAME %in% tri_cou) # GEOID==tri_cou
pdx_tr <- tracts(state = "41",county = tri_cou, cb = FALSE, year = 2019)
pdx_bg <- block_groups(state = "41",county = tri_cou, cb = FALSE, year = 2019)
# pdx_bg <- pdx_bg %>% filter(str_sub(GEOID10, 1, 5) %in% tri_cou)
vars <- load_variables(2019, "acs5")
# View(vars)
str(vars)
## tibble [27,040 × 3] (S3: tbl_df/tbl/data.frame)
## $ name : chr [1:27040] "B01001_001" "B01001_002" "B01001_003" "B01001_004" ...
## $ label : chr [1:27040] "Estimate!!Total:" "Estimate!!Total:!!Male:" "Estimate!!Total:!!Male:!!Under 5 years" "Estimate!!Total:!!Male:!!5 to 9 years" ...
## $ concept: chr [1:27040] "SEX BY AGE" "SEX BY AGE" "SEX BY AGE" "SEX BY AGE" ...
length(unique(vars$concept))
## [1] 1135
(pop_tract <- get_acs(
state = "41",
county = tri_cou,
geography = "tract",
variables = c("B01003_001"),cache_table = T
)) %>% str()
## tibble [355 × 5] (S3: tbl_df/tbl/data.frame)
## $ GEOID : chr [1:355] "41005020100" "41005020200" "41005020302" "41005020303" ...
## $ NAME : chr [1:355] "Census Tract 201, Clackamas County, Oregon" "Census Tract 202, Clackamas County, Oregon" "Census Tract 203.02, Clackamas County, Oregon" "Census Tract 203.03, Clackamas County, Oregon" ...
## $ variable: chr [1:355] "B01003_001" "B01003_001" "B01003_001" "B01003_001" ...
## $ estimate: num [1:355] 3984 6258 4019 6112 5697 ...
## $ moe : num [1:355] 255 332 282 339 256 292 183 207 306 161 ...
There is not driver information.
vars %>% dplyr::filter(grepl("Total:!!No vehicle available",label)) %>% kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 7)
| name | label | concept |
|---|---|---|
| B08014_002 | Estimate!!Total:!!No vehicle available | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08141_002 | Estimate!!Total:!!No vehicle available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
| B08201_002 | Estimate!!Total:!!No vehicle available | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08203_002 | Estimate!!Total:!!No vehicle available | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
| B08541_002 | Estimate!!Total:!!No vehicle available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE FOR WORKPLACE GEOGRAPHY |
SEX OF WORKERS BY VEHICLES AVAILABLE
MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE
vars %>% filter(name %in% c(paste0("B08014_00", 2:9),paste0("B08141_00", 2:9))) %>% kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 7)
| name | label | concept |
|---|---|---|
| B08014_002 | Estimate!!Total:!!No vehicle available | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08014_003 | Estimate!!Total:!!1 vehicle available | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08014_004 | Estimate!!Total:!!2 vehicles available | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08014_005 | Estimate!!Total:!!3 vehicles available | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08014_006 | Estimate!!Total:!!4 vehicles available | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08014_007 | Estimate!!Total:!!5 or more vehicles available | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08014_008 | Estimate!!Total:!!Male: | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08014_009 | Estimate!!Total:!!Male:!!No vehicle available | SEX OF WORKERS BY VEHICLES AVAILABLE |
| B08141_002 | Estimate!!Total:!!No vehicle available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
| B08141_003 | Estimate!!Total:!!1 vehicle available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
| B08141_004 | Estimate!!Total:!!2 vehicles available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
| B08141_005 | Estimate!!Total:!!3 or more vehicles available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
| B08141_006 | Estimate!!Total:!!Car, truck, or van - drove alone: | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
| B08141_007 | Estimate!!Total:!!Car, truck, or van - drove alone:!!No vehicle available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
| B08141_008 | Estimate!!Total:!!Car, truck, or van - drove alone:!!1 vehicle available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
| B08141_009 | Estimate!!Total:!!Car, truck, or van - drove alone:!!2 vehicles available | MEANS OF TRANSPORTATION TO WORK BY VEHICLES AVAILABLE |
(noveh1 <- get_acs(
state = "41",
county = tri_cou,
geography = "tract",
variables = c("B08014_002","B08141_002"), output = "wide",
summary_var = "B08014_001", cache_table = T
) %>%
mutate(noveh.per= 100 * B08014_002E / summary_est) %>%
select(GEOID,B08014_002E, B08141_002E,summary_est, noveh.per)) %>% head()
## # A tibble: 6 x 5
## GEOID B08014_002E B08141_002E summary_est noveh.per
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 41005020700 23 23 1968 1.17
## 2 41005022500 120 120 4128 2.91
## 3 41005023401 0 0 2339 0
## 4 41005024100 0 0 2244 0
## 5 41005020600 42 42 4210 0.998
## 6 41005020303 0 0 3191 0
B08014_002 = B08141_002
HOUSEHOLD SIZE BY VEHICLES AVAILABLE
NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE
vars %>% filter(name %in% c(paste0("B08201_00", 2:9),paste0("B08203_00", 2:9))) %>% kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 7)
| name | label | concept |
|---|---|---|
| B08201_002 | Estimate!!Total:!!No vehicle available | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08201_003 | Estimate!!Total:!!1 vehicle available | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08201_004 | Estimate!!Total:!!2 vehicles available | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08201_005 | Estimate!!Total:!!3 vehicles available | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08201_006 | Estimate!!Total:!!4 or more vehicles available | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08201_007 | Estimate!!Total:!!1-person household: | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08201_008 | Estimate!!Total:!!1-person household:!!No vehicle available | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08201_009 | Estimate!!Total:!!1-person household:!!1 vehicle available | HOUSEHOLD SIZE BY VEHICLES AVAILABLE |
| B08203_002 | Estimate!!Total:!!No vehicle available | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
| B08203_003 | Estimate!!Total:!!1 vehicle available | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
| B08203_004 | Estimate!!Total:!!2 vehicles available | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
| B08203_005 | Estimate!!Total:!!3 vehicles available | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
| B08203_006 | Estimate!!Total:!!4 or more vehicles available | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
| B08203_007 | Estimate!!Total:!!No workers: | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
| B08203_008 | Estimate!!Total:!!No workers:!!No vehicle available | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
| B08203_009 | Estimate!!Total:!!No workers:!!1 vehicle available | NUMBER OF WORKERS IN HOUSEHOLD BY VEHICLES AVAILABLE |
(noveh2 <- get_acs(
state = "41",
county = tri_cou,
geography = "tract",
variables = c("B08201_002","B08203_002"), output = "wide", # same to "B08141_002"
summary_var = "B08201_001", cache_table = T
) %>%
mutate(noveh.per= 100 * B08201_002E / summary_est) %>%
select(GEOID,B08201_002E, B08203_002E, summary_est, noveh.per)) %>% head()
## # A tibble: 6 x 5
## GEOID B08201_002E B08203_002E summary_est noveh.per
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 41005020700 30 30 1445 2.08
## 2 41005022500 149 149 3022 4.93
## 3 41005023401 18 18 1763 1.02
## 4 41005024100 10 10 1783 0.561
## 5 41005020600 53 53 3054 1.74
## 6 41005020303 169 169 2750 6.15
B08201_002 = B08203_002
vars %>% filter((grepl("occupied:!!No vehicle available",label))) %>% kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 7)
| name | label | concept |
|---|---|---|
| B25044_003 | Estimate!!Total:!!Owner occupied:!!No vehicle available | TENURE BY VEHICLES AVAILABLE |
| B25044_010 | Estimate!!Total:!!Renter occupied:!!No vehicle available | TENURE BY VEHICLES AVAILABLE |
| B25045_003 | Estimate!!Total:!!Owner occupied:!!No vehicle available: | TENURE BY VEHICLES AVAILABLE BY AGE OF HOUSEHOLDER |
| B25045_004 | Estimate!!Total:!!Owner occupied:!!No vehicle available:!!Householder 15 to 34 years | TENURE BY VEHICLES AVAILABLE BY AGE OF HOUSEHOLDER |
| B25045_005 | Estimate!!Total:!!Owner occupied:!!No vehicle available:!!Householder 35 to 64 years | TENURE BY VEHICLES AVAILABLE BY AGE OF HOUSEHOLDER |
| B25045_006 | Estimate!!Total:!!Owner occupied:!!No vehicle available:!!Householder 65 years and over | TENURE BY VEHICLES AVAILABLE BY AGE OF HOUSEHOLDER |
| B25045_012 | Estimate!!Total:!!Renter occupied:!!No vehicle available: | TENURE BY VEHICLES AVAILABLE BY AGE OF HOUSEHOLDER |
| B25045_013 | Estimate!!Total:!!Renter occupied:!!No vehicle available:!!Householder 15 to 34 years | TENURE BY VEHICLES AVAILABLE BY AGE OF HOUSEHOLDER |
| B25045_014 | Estimate!!Total:!!Renter occupied:!!No vehicle available:!!Householder 35 to 64 years | TENURE BY VEHICLES AVAILABLE BY AGE OF HOUSEHOLDER |
| B25045_015 | Estimate!!Total:!!Renter occupied:!!No vehicle available:!!Householder 65 years and over | TENURE BY VEHICLES AVAILABLE BY AGE OF HOUSEHOLDER |
get_acs(
state = "41",
county = tri_cou,
geography = "tract",
variables = c("B25044_003","B25044_010"), output = "wide",
summary_var = "B25044_001", cache_table = T
) %>%
mutate(noveh.per= 100 * (B25044_003E + B25044_010E)/summary_est) %>%
select(GEOID,B25044_003E,B25044_010E,summary_est,noveh.per) %>% head()
## # A tibble: 6 x 5
## GEOID B25044_003E B25044_010E summary_est noveh.per
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 41005020700 30 0 1445 2.08
## 2 41005022500 8 141 3022 4.93
## 3 41005023401 18 0 1763 1.02
## 4 41005024100 10 0 1783 0.561
## 5 41005020600 0 53 3054 1.74
## 6 41005020303 18 151 2750 6.15
B08201_002 = B08203_002 = B25044_003 + B25044_010
pdx_tr1 <- pdx_tr %>% left_join(noveh1,by="GEOID")
pdx_tr2 <- pdx_tr %>% left_join(noveh2,by="GEOID")
mapview(pdx_tr1, zcol = "noveh.per") +
mapview(pdx_tr1, zcol = "B08014_002E") +
mapview(pdx_tr2, zcol = "noveh.per") +
mapview(pdx_tr2, zcol = "B08201_002E")